import { TimerTaskManager } from './TimerTaskManager';

/**
 * 初始化定时任务管理器
 * 在应用启动时调用此函数
 */
export async function initTimerTasks(): Promise<void> {
  try {
    const manager = TimerTaskManager.getInstance();
    await manager.initialize();
  } catch (error) {
    console.error('定时任务管理器初始化失败:', error);
  }
}

/**
 * 停止所有定时任务
 * 在应用关闭时调用此函数
 */
export function stopTimerTasks(): void {
  try {
    console.log('正在停止所有定时任务...');
    
    const manager = TimerTaskManager.getInstance();
    manager.stopAllTasks();
    
    console.log('所有定时任务已停止');
  } catch (error) {
    console.error('停止定时任务失败:', error);
  }
}

// 监听进程退出事件，确保正确清理定时任务
if (typeof process !== 'undefined') {
  process.on('SIGINT', () => {
    console.log('收到 SIGINT 信号，正在停止定时任务...');
    stopTimerTasks();
    process.exit(0);
  });

  process.on('SIGTERM', () => {
    console.log('收到 SIGTERM 信号，正在停止定时任务...');
    stopTimerTasks();
    process.exit(0);
  });
}

// 移除自动初始化逻辑，改为在应用启动时手动调用
// 这样可以更好地控制初始化时机和错误处理 